package org.jeecg.modules.travel.carpool.entity;

import java.io.Serializable;

import org.jeecg.modules.travel.user.entity.TravelDrivers;
import org.jeecg.modules.travel.user.entity.TravelStudents;
// import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.List;


/**
 * @Description: Travel car
 * @Author: Travel
 * @Date:	2023-03-12 
 * @Version:V1.0
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="拼车表", description="拼车")
@TableName("travel_carpool")
public class TravelCarpool  implements Serializable {
	private static final long serialVersionUID = 1L;

	/**主键*/
    @TableId(type = IdType.AUTO)
	private java.lang.Long id;

	/** 用户ID */
	@ApiModelProperty(value = "用户ID",example = "0")
	@Excel(name="用户ID",width=15)
	private java.lang.String uid;

	/** 是否司机 */
	@Excel(name="是否司机",width=25)
	@ApiModelProperty(value = "是否司机")
	private java.lang.Boolean driver;

	/** 关联ID 司机或者学生ID */
	@ApiModelProperty(value = "关联ID",example = "")
	@Excel(name="关联ID",width=15)
	private java.lang.String iid;

	/** 计划时间 */
	@ApiModelProperty(value = "计划时间")
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@Excel(name="计划时间",width=20,format="yyyy-MM-dd HH:mm:ss")
	private java.util.Date planTime;

	/** 出发地点 */
	@Excel(name="出发地点",width=25)
	@ApiModelProperty(value = "出发地点")
	private java.lang.String startingName;

	/** 价格 */
	@Excel(name="价格",width=25)
	@ApiModelProperty(value = "价格")
	private java.lang.Double price;

	/** 备注 */
	@Excel(name="备注",width=25)
	@ApiModelProperty(value = "备注")
	private java.lang.String remark;

	/** 出发地坐标 */
	@Excel(name="出发地坐标",width=25)
	@ApiModelProperty(value = "出发地坐标")
	private java.lang.String startingPoint;

	/** 终点坐标 */
	@Excel(name="终点坐标",width=25)
	@ApiModelProperty(value = "终点坐标")
	private java.lang.String endPoint;

	/** 终点 */
	@Excel(name="终点",width=25)
	@ApiModelProperty(value = "终点")
	private java.lang.String endName;

	/** 出发时间 */
	@ApiModelProperty(value = "出发时间")
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@Excel(name="出发时间",width=20,format="yyyy-MM-dd HH:mm:ss")
	private java.util.Date startTime;

	/** 完成时间 */
	@ApiModelProperty(value = "完成时间")
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@Excel(name="完成时间",width=20,format="yyyy-MM-dd HH:mm:ss")
	private java.util.Date finishTime;

	/** 状态 0:取消,1:接单中,2:进行中,3:完成 */
	@Excel(name="状态",width=25)
	@ApiModelProperty(value = "状态")
	private java.lang.Integer status;

	/** 姓名 */
	@Excel(name="姓名",width=25)
	@ApiModelProperty(value = "姓名")
	private java.lang.String name;


	/** 电话 */
	@Excel(name="电话",width=25)
	@ApiModelProperty(value = "电话")
	private java.lang.String phone;

	/** 头像 */
	@Excel(name="头像",width=25)
	@ApiModelProperty(value = "头像")
	private java.lang.String avatarUrl;

	/** 空闲座位 */
	@Excel(name="空闲座位",width=25)
	@ApiModelProperty(value = "空闲座位")
	private java.lang.Integer emptySeat;

	/** 一对多关系：一个拼车可以有多个行程 */
	@ApiModelProperty(value = "行程列表")
	@TableField(exist = false)
	private List<TravelJourney> journeyList;

	/** 一对一关系：司机信息 */
	@ApiModelProperty(value = "司机信息")
	@TableField(exist = false)
	private TravelDrivers driverInfo;

	/** 一对多关系：学生信息 */
	@ApiModelProperty(value = "学生信息")
	@TableField(exist = false)
	private List<TravelStudents> studentInfo;

}
